library(tidyverse)
Registered S3 methods overwritten by 'dbplyr':
  method         from
  print.tbl_lazy     
  print.tbl_sql      
── Attaching packages ──────────────────────────────────────────────────────────────────── tidyverse 1.3.0 ──
✓ ggplot2 3.3.3     ✓ purrr   0.3.4
✓ tibble  3.0.6     ✓ dplyr   1.0.5
✓ tidyr   1.1.3     ✓ stringr 1.4.0
✓ readr   1.4.0     ✓ forcats 0.5.1
── Conflicts ─────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
x dplyr::filter() masks stats::filter()
x dplyr::lag()    masks stats::lag()
library(sf)
Linking to GEOS 3.8.1, GDAL 3.1.4, PROJ 6.3.1
library(rmapshaper)
Registered S3 method overwritten by 'geojsonlint':
  method         from 
  print.location dplyr
library(here)
here() starts at /Users/emilyjaco/codeclan_health_dashboard
library(leaflet)
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio
library(htmltools)
scotland <- read_sf(here("data_raw/SG_NHS_HealthBoards_2019/SG_NHS_HealthBoards_2019.shp"))
class(scotland)
[1] "sf"         "tbl_df"     "tbl"        "data.frame"
head(scotland, 14)
Simple feature collection with 14 features and 4 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 530250.8 xmax: 470332 ymax: 1220302
Projected CRS: OSGB 1936 / British National Grid
scotland_geometry <- st_geometry(scotland)

scotland_geometry
Geometry set for 14 features 
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: 5512.998 ymin: 530250.8 xmax: 470332 ymax: 1220302
Projected CRS: OSGB 1936 / British National Grid
First 5 geometries:
MULTIPOLYGON (((201916.2 600444.4, 201918.4 600...
MULTIPOLYGON (((345325.9 579663.3, 345325.1 579...
MULTIPOLYGON (((266004.4 543544.6, 266010.9 543...
MULTIPOLYGON (((256533 740502, 256501.5 740379,...
MULTIPOLYGON (((383521.2 771234.7, 383524.3 771...
scotland_simple <- ms_simplify(scotland)
plot(scotland_simple)

alcohol <- read_csv("../data_clean/alcohol.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(alcohol_consumption == "Hazardous/Harmful drinker")

── Column specification ─────────────────────────────────────────────────────────────────────────────────────
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  alcohol_consumption = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
alcohol_scotland_simple <- scotland_simple %>% 
  left_join(alcohol, by = c("HBCode" = "feature_code")) 

ggplot(alcohol_scotland_simple) +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Alcohol Consumption in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")


alcohol_scotland_simple %>% 
  leaflet() %>% 
  addTiles() %>%
  addMarkers(lng = ~longitude,
                   lat = ~latitude,
             popup = ~HBName)
obesity <- read_csv("../data_clean/obesity.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(obesity == "Obese")

── Column specification ─────────────────────────────────────────────────────────────────────────────────────
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  obesity = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
scotland_simple %>% 
  left_join(obesity, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Obesity in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

smoking_status <- read_csv("../data_clean/smoking_status.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(smoking_status == "Current smoker")

── Column specification ─────────────────────────────────────────────────────────────────────────────────────
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  smoking_status = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
scotland_simple %>% 
  left_join(smoking_status, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("Smoking Status in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

e_cig <- read_csv("../data_clean/e_cig.csv") %>% 
  filter(sex == "All") %>% 
  filter(date_code == "2016-2019") %>% 
  filter(e_cigarette_use == "Currently using")

── Column specification ─────────────────────────────────────────────────────────────────────────────────────
cols(
  feature_code = col_character(),
  date_code = col_character(),
  measurement = col_character(),
  units = col_character(),
  value = col_double(),
  e_cigarette_use = col_character(),
  sex = col_character(),
  hb_name = col_character(),
  longitude = col_double(),
  latitude = col_double()
)
scotland_simple %>% 
  left_join(e_cig, by = c("HBCode" = "feature_code")) %>% 
ggplot() +
  geom_sf(aes(group = hb_name, fill = value)) +
  theme_minimal() +
  theme(panel.grid.major = element_blank(), axis.text = element_blank()) +
  ggtitle("E-cigarette use in Scotland") + 
  scale_fill_gradient(low = "green", high = "red")

alcohol %>% 
  filter(sex == "All") %>% 
  filter(hb_name == "Scotland") %>% 
    filter(date_code == "2016-2019") %>% 
  filter(alcohol_consumption == "Hazardous/Harmful drinker") 

alcohol_scotland
Error: object 'alcohol_scotland' not found
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3J9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHNmKQpsaWJyYXJ5KHJtYXBzaGFwZXIpCmxpYnJhcnkoaGVyZSkKbGlicmFyeShsZWFmbGV0KQpsaWJyYXJ5KGh0bWx0b29scykKYGBgCgpgYGB7cn0Kc2NvdGxhbmQgPC0gcmVhZF9zZihoZXJlKCJkYXRhX3Jhdy9TR19OSFNfSGVhbHRoQm9hcmRzXzIwMTkvU0dfTkhTX0hlYWx0aEJvYXJkc18yMDE5LnNocCIpKQpgYGAKCmBgYHtyfQpjbGFzcyhzY290bGFuZCkKYGBgCgpgYGB7cn0KaGVhZChzY290bGFuZCwgMTQpCmBgYAoKYGBge3J9CnNjb3RsYW5kX2dlb21ldHJ5IDwtIHN0X2dlb21ldHJ5KHNjb3RsYW5kKQoKc2NvdGxhbmRfZ2VvbWV0cnkKYGBgCgpgYGB7cn0Kc2NvdGxhbmRfc2ltcGxlIDwtIG1zX3NpbXBsaWZ5KHNjb3RsYW5kKQpgYGAKCmBgYHtyfQpwbG90KHNjb3RsYW5kX3NpbXBsZSkKYGBgCgoKCmBgYHtyfQphbGNvaG9sIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL2FsY29ob2wuY3N2IikgJT4lIAogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSAKICBmaWx0ZXIoZGF0ZV9jb2RlID09ICIyMDE2LTIwMTkiKSAlPiUgCiAgZmlsdGVyKGFsY29ob2xfY29uc3VtcHRpb24gPT0gIkhhemFyZG91cy9IYXJtZnVsIGRyaW5rZXIiKQoKYWxjb2hvbF9zY290bGFuZF9zaW1wbGUgPC0gc2NvdGxhbmRfc2ltcGxlICU+JSAKICBsZWZ0X2pvaW4oYWxjb2hvbCwgYnkgPSBjKCJIQkNvZGUiID0gImZlYXR1cmVfY29kZSIpKSAKCmdncGxvdChhbGNvaG9sX3Njb3RsYW5kX3NpbXBsZSkgKwogIGdlb21fc2YoYWVzKGdyb3VwID0gaGJfbmFtZSwgZmlsbCA9IHZhbHVlKSkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArCiAgZ2d0aXRsZSgiQWxjb2hvbCBDb25zdW1wdGlvbiBpbiBTY290bGFuZCIpICsgCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpCgphbGNvaG9sX3Njb3RsYW5kX3NpbXBsZSAlPiUgCiAgbGVhZmxldCgpICU+JSAKICBhZGRUaWxlcygpICU+JQogIGFkZE1hcmtlcnMobG5nID0gfmxvbmdpdHVkZSwKICAgICAgICAgICAgICAgICAgIGxhdCA9IH5sYXRpdHVkZSwKICAgICAgICAgICAgIHBvcHVwID0gfkhCTmFtZSkKYGBgCgpgYGB7cn0Kb2Jlc2l0eSA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9vYmVzaXR5LmNzdiIpICU+JSAKICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgCiAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIAogIGZpbHRlcihvYmVzaXR5ID09ICJPYmVzZSIpCgpzY290bGFuZF9zaW1wbGUgJT4lIAogIGxlZnRfam9pbihvYmVzaXR5LCBieSA9IGMoIkhCQ29kZSIgPSAiZmVhdHVyZV9jb2RlIikpICU+JSAKZ2dwbG90KCkgKwogIGdlb21fc2YoYWVzKGdyb3VwID0gaGJfbmFtZSwgZmlsbCA9IHZhbHVlKSkgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUocGFuZWwuZ3JpZC5tYWpvciA9IGVsZW1lbnRfYmxhbmsoKSwgYXhpcy50ZXh0ID0gZWxlbWVudF9ibGFuaygpKSArCiAgZ2d0aXRsZSgiT2Jlc2l0eSBpbiBTY290bGFuZCIpICsgCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpCmBgYAoKYGBge3J9CnNtb2tpbmdfc3RhdHVzIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL3Ntb2tpbmdfc3RhdHVzLmNzdiIpICU+JSAKICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgCiAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIAogIGZpbHRlcihzbW9raW5nX3N0YXR1cyA9PSAiQ3VycmVudCBzbW9rZXIiKQoKc2NvdGxhbmRfc2ltcGxlICU+JSAKICBsZWZ0X2pvaW4oc21va2luZ19zdGF0dXMsIGJ5ID0gYygiSEJDb2RlIiA9ICJmZWF0dXJlX2NvZGUiKSkgJT4lIApnZ3Bsb3QoKSArCiAgZ2VvbV9zZihhZXMoZ3JvdXAgPSBoYl9uYW1lLCBmaWxsID0gdmFsdWUpKSArCiAgdGhlbWVfbWluaW1hbCgpICsKICB0aGVtZShwYW5lbC5ncmlkLm1ham9yID0gZWxlbWVudF9ibGFuaygpLCBheGlzLnRleHQgPSBlbGVtZW50X2JsYW5rKCkpICsKICBnZ3RpdGxlKCJTbW9raW5nIFN0YXR1cyBpbiBTY290bGFuZCIpICsgCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpCmBgYAoKYGBge3J9CmVfY2lnIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL2VfY2lnLmNzdiIpICU+JSAKICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgCiAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIAogIGZpbHRlcihlX2NpZ2FyZXR0ZV91c2UgPT0gIkN1cnJlbnRseSB1c2luZyIpCgpzY290bGFuZF9zaW1wbGUgJT4lIAogIGxlZnRfam9pbihlX2NpZywgYnkgPSBjKCJIQkNvZGUiID0gImZlYXR1cmVfY29kZSIpKSAlPiUgCmdncGxvdCgpICsKICBnZW9tX3NmKGFlcyhncm91cCA9IGhiX25hbWUsIGZpbGwgPSB2YWx1ZSkpICsKICB0aGVtZV9taW5pbWFsKCkgKwogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2JsYW5rKCksIGF4aXMudGV4dCA9IGVsZW1lbnRfYmxhbmsoKSkgKwogIGdndGl0bGUoIkUtY2lnYXJldHRlIHVzZSBpbiBTY290bGFuZCIpICsgCiAgc2NhbGVfZmlsbF9ncmFkaWVudChsb3cgPSAiZ3JlZW4iLCBoaWdoID0gInJlZCIpCmBgYAoKYGBge3J9CmFsY29ob2xfc2NvdGxhbmQgPC0gCiAgYWxjb2hvbCU+JSAKICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgCiAgZmlsdGVyKGhiX25hbWUgPT0gIlNjb3RsYW5kIikgJT4lIAogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIAogIGZpbHRlcihhbGNvaG9sX2NvbnN1bXB0aW9uID09ICJIYXphcmRvdXMvSGFybWZ1bCBkcmlua2VyIikgCgphbGNvaG9sX3Njb3RsYW5kCgoKICBzZWxlY3QodmFsdWUpICU+JSAKICBwdWxsKCkKYGBgCgpgYGB7cn0Kb2Jlc2l0eV9zY290bGFuZCA8LSByZWFkX2NzdigiLi4vZGF0YV9jbGVhbi9vYmVzaXR5LmNzdiIpICU+JSAKICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgCiAgZmlsdGVyKGhiX25hbWUgPT0gIlNjb3RsYW5kIikgJT4lIAogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIAogIGZpbHRlcihvYmVzaXR5ID09ICJPYmVzZSIpCgpvYmVzaXR5X3Njb3RsYW5kCmBgYAoKYGBge3J9CgphbGNvaG9sICU+JQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihzZXggPT0gIkFsbCIgfCBkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihoYl9uYW1lID09ICJTY290bGFuZCIpICU+JQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihhbGNvaG9sX2NvbnN1bXB0aW9uID09ICJIYXphcmRvdXMvSGFybWZ1bCBkcmlua2VyIikgJT4lCiAgICAgICAgICAgICAgICAgICAgc2VsZWN0KHZhbHVlKSAlPiUKICAgICAgICAgICAgICAgICAgICBwdWxsKCkKYGBgCgoKYGBge3J9CnNtb2tpbmdfc3RhdHVzX3Njb3RsYW5kIDwtIHJlYWRfY3N2KCIuLi9kYXRhX2NsZWFuL3Ntb2tpbmdfc3RhdHVzLmNzdiIpICU+JSAKICBmaWx0ZXIoc2V4ID09ICJBbGwiKSAlPiUgCiAgZmlsdGVyKGhiX25hbWUgPT0gIlNjb3RsYW5kIikgJT4lIAogICAgZmlsdGVyKGRhdGVfY29kZSA9PSAiMjAxNi0yMDE5IikgJT4lIAogIGZpbHRlcihzbW9raW5nX3N0YXR1cyA9PSAiQ3VycmVudCBzbW9rZXIiKQoKc21va2luZ19zdGF0dXNfc2NvdGxhbmQKYGBgCgpgYGB7cn0KZV9jaWdfc2NvdGxhbmQgPC0gcmVhZF9jc3YoIi4uL2RhdGFfY2xlYW4vZV9jaWcuY3N2IikgJT4lIAogIGZpbHRlcihzZXggPT0gIkFsbCIpICU+JSAKICBmaWx0ZXIoaGJfbmFtZSA9PSAiU2NvdGxhbmQiKSAlPiUgCiAgICBmaWx0ZXIoZGF0ZV9jb2RlID09ICIyMDE2LTIwMTkiKSAlPiUgCiAgZmlsdGVyKGVfY2lnYXJldHRlX3VzZSA9PSAiQ3VycmVudGx5IHVzaW5nIikKCmVfY2lnX3Njb3RsYW5kCmBgYAoKYGBge3J9CnVuaXF1ZSAob2Jlc2l0eSRzZXgpCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIHNlbGVjdElucHV0KCJ5ZWFyX3NlbGVjdGlvbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWWVhciBTZWxlY3Rpb24iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IHVuaXF1ZShvYmVzaXR5JGRhdGVfY29kZSkpCgpgYGAKCmBgYHtyfQphbGNvaG9sICU+JQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihzZXggPT0gIkFsbCIgLCBkYXRlX2NvZGUgPT0gIjIwMTYtMjAxOSIpICU+JQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihoYl9uYW1lID09ICJTY290bGFuZCIpICU+JQogICAgICAgICAgICAgICAgICAgIGZpbHRlcihhbGNvaG9sX2NvbnN1bXB0aW9uID09ICJIYXphcmRvdXMvSGFybWZ1bCBkcmlua2VyIikKYGBgCgo=